{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Import and setting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ---------- import\n",
    "import pickle\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ---------- figure size\n",
    "plt.rcParams['figure.figsize'] =[8, 6]\n",
    "\n",
    "# ---------- axes\n",
    "plt.rcParams['axes.grid'] = True\n",
    "plt.rcParams['axes.linewidth'] = 1.5\n",
    "\n",
    "# ---------- ticks\n",
    "plt.rcParams['xtick.direction'] = 'in'\n",
    "plt.rcParams['ytick.direction'] = 'in'\n",
    "plt.rcParams['xtick.major.width'] = 1.0\n",
    "plt.rcParams['ytick.major.width'] = 1.0\n",
    "plt.rcParams['xtick.major.size'] = 8.0\n",
    "plt.rcParams['ytick.major.size'] = 8.0\n",
    "\n",
    "# ---------- lines\n",
    "plt.rcParams['lines.linewidth'] = 2.5\n",
    "\n",
    "# ---------- grid\n",
    "plt.rcParams['grid.linestyle'] = ':'\n",
    "\n",
    "# ---------- font\n",
    "plt.rcParams['font.size'] = 20\n",
    "#plt.rcParams['pdf.fonttype'] = 42    # embed fonts in PDF using type42 (True type)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_pkl(filename):\n",
    "    with open(filename, 'rb') as f:\n",
    "        return pickle.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gen</th>\n",
       "      <th>Spg_num</th>\n",
       "      <th>Spg_sym</th>\n",
       "      <th>Spg_num_opt</th>\n",
       "      <th>Spg_sym_opt</th>\n",
       "      <th>E_eV_atom</th>\n",
       "      <th>Magmom</th>\n",
       "      <th>Opt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>-4.140134</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>2</td>\n",
       "      <td>P-1</td>\n",
       "      <td>-4.101055</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>-4.089495</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>225</td>\n",
       "      <td>Fm-3m</td>\n",
       "      <td>221</td>\n",
       "      <td>Pm-3m</td>\n",
       "      <td>-4.061873</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1</td>\n",
       "      <td>229</td>\n",
       "      <td>Im-3m</td>\n",
       "      <td>229</td>\n",
       "      <td>Im-3m</td>\n",
       "      <td>-4.055381</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>-4.053463</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>P-1</td>\n",
       "      <td>2</td>\n",
       "      <td>P-1</td>\n",
       "      <td>-4.048627</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1</td>\n",
       "      <td>54</td>\n",
       "      <td>Pcca</td>\n",
       "      <td>65</td>\n",
       "      <td>Cmmm</td>\n",
       "      <td>-3.959463</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>-3.952702</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>1</td>\n",
       "      <td>P1</td>\n",
       "      <td>-3.950742</td>\n",
       "      <td>NaN</td>\n",
       "      <td>done</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Gen  Spg_num Spg_sym  Spg_num_opt Spg_sym_opt  E_eV_atom  Magmom   Opt\n",
       "17    2        1      P1            1          P1  -4.140134     NaN  done\n",
       "4     1        1      P1            2         P-1  -4.101055     NaN  done\n",
       "12    2        1      P1            1          P1  -4.089495     NaN  done\n",
       "0     1      225   Fm-3m          221       Pm-3m  -4.061873     NaN  done\n",
       "8     1      229   Im-3m          229       Im-3m  -4.055381     NaN  done\n",
       "11    2        1      P1            1          P1  -4.053463     NaN  done\n",
       "16    2        2     P-1            2         P-1  -4.048627     NaN  done\n",
       "7     1       54    Pcca           65        Cmmm  -3.959463     NaN  done\n",
       "14    2        1      P1            1          P1  -3.952702     NaN  done\n",
       "10    2        1      P1            1          P1  -3.950742     NaN  done"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rslt_data = load_pkl('./pkl_data/rslt_data.pkl')\n",
    "\n",
    "# ---------- sort Selection\n",
    "#rslt_data.head(10)\n",
    "\n",
    "# ---------- sort by Energy\n",
    "rslt_data.sort_values(by=['E_eV_atom']).head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of selection: 2\n",
      "Number of data: 20\n",
      "Success: 20\n",
      "Error: 0\n",
      "Emin: -4.140134485107363 eV/atom\n"
     ]
    }
   ],
   "source": [
    "# ---------- Selection\n",
    "gmax = rslt_data['Gen'].max()\n",
    "print('Number of selection: {}'.format(gmax))\n",
    "\n",
    "# ---------- Number of structures\n",
    "ndata = len(rslt_data)\n",
    "print('Number of data: {}'.format(ndata))\n",
    "\n",
    "# ---------- check success and error\n",
    "nsuccess = rslt_data['E_eV_atom'].count()\n",
    "nerror = ndata - nsuccess\n",
    "print('Success: {}'.format(nsuccess))\n",
    "print('Error: {}'.format(nerror))\n",
    "\n",
    "# ---------- minimum\n",
    "Emin = rslt_data['E_eV_atom'].min()\n",
    "print('Emin: {} eV/atom'.format(Emin))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Energy vs. trial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Energy (eV/atom)')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "\n",
    "# ---------- axis\n",
    "dx = 1    # margin in xtick\n",
    "ax.set_xlim([1-dx, ndata+dx])\n",
    "ax.set_ylim([-0.5, 3])\n",
    "\n",
    "# ---------- hline at zero\n",
    "ax.hlines(0.0, -dx, ndata+dx, 'k', '--')\n",
    "\n",
    "# ---------- plot\n",
    "#ax.plot(rslt_data['E_eV_atom'] - Emin, 'o', ms=15, mew=2.0, alpha=0.8)\n",
    "\n",
    "\n",
    "# ---------- color coded by generation  \n",
    "tx = 0\n",
    "for g in range(1, gmax+1):    # generation starts from 1\n",
    "    gfilter = rslt_data['Gen'] == g\n",
    "    num = len(rslt_data[gfilter])\n",
    "    x = np.arange(1, num+1) + tx\n",
    "    ax.plot(x, rslt_data['E_eV_atom'][gfilter] - Emin, 'o', ms=15, mew=2.0, alpha=0.8)\n",
    "    tx += num\n",
    "\n",
    "# ---------- title and label\n",
    "ax.set_title('Evolutionary algorithm for Si$_{16}$')\n",
    "ax.set_xlabel('Number of trials')\n",
    "ax.set_ylabel('Energy (eV/atom)')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ---------- save figure\n",
    "fig.savefig('Si16_EA.png', bbox_inches='tight')    # PNG\n",
    "#fig.savefig('title_RS.png', bbox_inches='tight', dpi=300)    # high dpi PNG\n",
    "#fig.savefig('title_RS.pdf', bbox_inches='tight')    # PDF"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  },
  "toc": {
   "nav_menu": {
    "height": "84px",
    "width": "252px"
   },
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
